{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Core Evolution\n",
    "\n",
    "author: Vincent Gauthier <vincent.gauthier@telecom-sudparis.eu>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "tags": [
     "parameters"
    ]
   },
   "outputs": [],
   "source": [
    "# parameters \n",
    "path=\"./Figures/\"\n",
    "filename = \"fig2.pdf\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "import glob, os, csv\n",
    "import igraph as ig\n",
    "import networkx as nx\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pylab as plt\n",
    "from scipy.stats import gaussian_kde\n",
    "\n",
    "import sys, os, csv\n",
    "\n",
    "sys.path.append('./py-network-rich-core/')\n",
    "\n",
    "from RichCore.RichCore import extract_rich_core, extract_rich_core_directed\n",
    "\n",
    "import sys\n",
    "sys.path.insert(1,'../Mfig/')\n",
    "import mplp\n",
    "\n",
    "import watermark\n",
    "\n",
    "%load_ext watermark\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "matplotlib.pylab 1.17.2\n",
      "networkx         2.3\n",
      "watermark        2.0.1\n",
      "pandas           0.25.1\n",
      "numpy            1.17.2\n",
      "csv              1.0\n",
      "scipy            1.3.1\n",
      "igraph           0.7.1\n",
      "Thu Feb 27 2020 \n",
      "\n",
      "CPython 3.7.4\n",
      "IPython 7.8.0\n",
      "\n",
      "compiler   : Clang 4.0.1 (tags/RELEASE_401/final)\n",
      "system     : Darwin\n",
      "release    : 19.3.0\n",
      "machine    : x86_64\n",
      "processor  : i386\n",
      "CPU cores  : 8\n",
      "interpreter: 64bit\n",
      "Git hash   : b5b3d30fe94d80baf1634254a095843f60b32641\n"
     ]
    }
   ],
   "source": [
    "%watermark -n -v -m -g -iv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "x TransactionGraph/\n",
      "x TransactionGraph/25-04-2017.dat\n",
      "x TransactionGraph/17-04-2017.dat\n",
      "x TransactionGraph/01-02-2017.dat\n",
      "x TransactionGraph/01-03-2017.dat\n",
      "x TransactionGraph/09-01-2017.dat\n",
      "x TransactionGraph/02-05-2017.dat\n",
      "x TransactionGraph/02-04-2017.dat\n",
      "x TransactionGraph/27-01-2017.dat\n",
      "x TransactionGraph/14-03-2017.dat\n",
      "x TransactionGraph/14-02-2017.dat\n",
      "x TransactionGraph/08-03-2017.dat\n",
      "x TransactionGraph/08-02-2017.dat\n",
      "x TransactionGraph/15-01-2017.dat\n",
      "x TransactionGraph/26-03-2017.dat\n",
      "x TransactionGraph/26-02-2017.dat\n",
      "x TransactionGraph/30-04-2017.dat\n",
      "x TransactionGraph/22-01-2017.dat\n",
      "x TransactionGraph/11-03-2017.dat\n",
      "x TransactionGraph/11-02-2017.dat\n",
      "x TransactionGraph/07-04-2017.dat\n",
      "x TransactionGraph/29-04-2017.dat\n",
      "x TransactionGraph/10-01-2017.dat\n",
      "x TransactionGraph/23-03-2017.dat\n",
      "x TransactionGraph/23-02-2017.dat\n",
      "x TransactionGraph/18-02-2017.dat\n",
      "x TransactionGraph/18-03-2017.dat\n",
      "x TransactionGraph/20-04-2017.dat\n",
      "x TransactionGraph/19-01-2017.dat\n",
      "x TransactionGraph/04-02-2017.dat\n",
      "x TransactionGraph/04-03-2017.dat\n",
      "x TransactionGraph/12-04-2017.dat\n",
      "x TransactionGraph/07-02-2017.dat\n",
      "x TransactionGraph/07-03-2017.dat\n",
      "x TransactionGraph/11-04-2017.dat\n",
      "x TransactionGraph/29-03-2017.dat\n",
      "x TransactionGraph/23-04-2017.dat\n",
      "x TransactionGraph/28-01-2017.dat\n",
      "x TransactionGraph/18-04-2017.dat\n",
      "x TransactionGraph/20-03-2017.dat\n",
      "x TransactionGraph/20-02-2017.dat\n",
      "x TransactionGraph/13-01-2017.dat\n",
      "x TransactionGraph/12-03-2017.dat\n",
      "x TransactionGraph/12-02-2017.dat\n",
      "x TransactionGraph/21-01-2017.dat\n",
      "x TransactionGraph/04-04-2017.dat\n",
      "x TransactionGraph/25-03-2017.dat\n",
      "x TransactionGraph/25-02-2017.dat\n",
      "x TransactionGraph/16-01-2017.dat\n",
      "x TransactionGraph/01-05-2017.dat\n",
      "x TransactionGraph/01-04-2017.dat\n",
      "x TransactionGraph/17-03-2017.dat\n",
      "x TransactionGraph/17-02-2017.dat\n",
      "x TransactionGraph/24-01-2017.dat\n",
      "x TransactionGraph/14-04-2017.dat\n",
      "x TransactionGraph/02-02-2017.dat\n",
      "x TransactionGraph/02-03-2017.dat\n",
      "x TransactionGraph/31-01-2017.dat\n",
      "x TransactionGraph/08-04-2017.dat\n",
      "x TransactionGraph/30-03-2017.dat\n",
      "x TransactionGraph/26-04-2017.dat\n",
      "x TransactionGraph/18-01-2017.dat\n",
      "x TransactionGraph/13-04-2017.dat\n",
      "x TransactionGraph/05-03-2017.dat\n",
      "x TransactionGraph/05-02-2017.dat\n",
      "x TransactionGraph/19-03-2017.dat\n",
      "x TransactionGraph/19-02-2017.dat\n",
      "x TransactionGraph/21-04-2017.dat\n",
      "x TransactionGraph/22-02-2017.dat\n",
      "x TransactionGraph/22-03-2017.dat\n",
      "x TransactionGraph/11-01-2017.dat\n",
      "x TransactionGraph/06-04-2017.dat\n",
      "x TransactionGraph/10-02-2017.dat\n",
      "x TransactionGraph/10-03-2017.dat\n",
      "x TransactionGraph/23-01-2017.dat\n",
      "x TransactionGraph/28-04-2017.dat\n",
      "x TransactionGraph/09-02-2017.dat\n",
      "x TransactionGraph/09-03-2017.dat\n",
      "x TransactionGraph/27-02-2017.dat\n",
      "x TransactionGraph/27-03-2017.dat\n",
      "x TransactionGraph/14-01-2017.dat\n",
      "x TransactionGraph/08-01-2017.dat\n",
      "x TransactionGraph/15-02-2017.dat\n",
      "x TransactionGraph/15-03-2017.dat\n",
      "x TransactionGraph/26-01-2017.dat\n",
      "x TransactionGraph/03-04-2017.dat\n",
      "x TransactionGraph/16-04-2017.dat\n",
      "x TransactionGraph/24-04-2017.dat\n",
      "x TransactionGraph/09-04-2017.dat\n",
      "x TransactionGraph/27-04-2017.dat\n",
      "x TransactionGraph/31-03-2017.dat\n",
      "x TransactionGraph/30-01-2017.dat\n",
      "x TransactionGraph/03-03-2017.dat\n",
      "x TransactionGraph/03-02-2017.dat\n",
      "x TransactionGraph/15-04-2017.dat\n",
      "x TransactionGraph/25-01-2017.dat\n",
      "x TransactionGraph/16-02-2017.dat\n",
      "x TransactionGraph/16-03-2017.dat\n",
      "x TransactionGraph/17-01-2017.dat\n",
      "x TransactionGraph/24-02-2017.dat\n",
      "x TransactionGraph/24-03-2017.dat\n",
      "x TransactionGraph/05-04-2017.dat\n",
      "x TransactionGraph/20-01-2017.dat\n",
      "x TransactionGraph/13-02-2017.dat\n",
      "x TransactionGraph/13-03-2017.dat\n",
      "x TransactionGraph/19-04-2017.dat\n",
      "x TransactionGraph/12-01-2017.dat\n",
      "x TransactionGraph/21-02-2017.dat\n",
      "x TransactionGraph/21-03-2017.dat\n",
      "x TransactionGraph/22-04-2017.dat\n",
      "x TransactionGraph/29-01-2017.dat\n",
      "x TransactionGraph/10-04-2017.dat\n",
      "x TransactionGraph/06-03-2017.dat\n",
      "x TransactionGraph/06-02-2017.dat\n",
      "x TransactionGraph/28-03-2017.dat\n",
      "x TransactionGraph/28-02-2017.dat\n"
     ]
    }
   ],
   "source": [
    "# Download the data\n",
    "!wget wget https://dataverse.harvard.edu/api/access/datafile/3851875\n",
    "!mv 3851875 networks.tar.gz\n",
    "!tar zxvf networks.tar.gz"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Compute Rich Core \n",
    "\n",
    "### We use py-network-rich-core [(github)](https://github.com/iaciac/py-network-rich-core)\n",
    "A Python module for the extraction of the rich-core of a complex network. Ma A and Mondragón RJ (PLoS One, 2015).\n",
    "\n",
    "### References\n",
    "[1] Ma, A. & Mondragón, R. J. Rich-Cores in Networks. PLoS One 10, e0119678 (2015)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "files = glob.glob('./TransactionGraph/*.dat')\n",
    "degenerancy = {}\n",
    "\n",
    "r = []\n",
    "x = []\n",
    "for file in files:\n",
    "    base=os.path.basename(file)\n",
    "    date = os.path.splitext(base)[0]\n",
    "    with open(file, 'r+') as edgelist:\n",
    "        tuples = []\n",
    "        G = nx.DiGraph()\n",
    "        reader = csv.reader(edgelist, delimiter='\\t')\n",
    "        for row in reader:\n",
    "            G.add_edge(str(row[0]), str(row[1]), weight=float(row[2]))\n",
    "    sigmas, ranked_nodes, r_star = extract_rich_core_directed(G)\n",
    "    x.append(date)\n",
    "    r.append(r_star)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "dfr = pd.DataFrame({'date':x, 'data':r})\n",
    "dfr[\"date\"] = pd.to_datetime(dfr.date, dayfirst=True)\n",
    "dfr.set_index(\"date\", inplace=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Compute PDF"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "bandwidth = 5\n",
    "x_grid = np.linspace(0, 200, 100)\n",
    "\n",
    "kde = gaussian_kde(r, bw_method= bandwidth / np.array(r).std(ddof=1))\n",
    "pdf = kde.evaluate(x_grid)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Plots"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "import matplotlib.gridspec as gridspec\n",
    "import matplotlib.dates as mdates\n",
    "\n",
    "fig = plt.figure()\n",
    "gs = gridspec.GridSpec(2, 2,  width_ratios=[1, 0.4], height_ratios=[0.4, 1])\n",
    "gs.update(wspace=0.5)\n",
    "\n",
    "ax0 = fig.add_subplot(gs[0, 1])\n",
    "ax1 = fig.add_subplot(gs[0:, 0])\n",
    "ax2 = fig.add_subplot(gs[1, 1])\n",
    "\n",
    "sns.boxplot(data=r, whis=\"range\", orient='h', ax=ax0)\n",
    "ax0.set_xticks([0, 75, 150])\n",
    "sns.despine(trim=True, left=True, ax=ax0)\n",
    "ax0.set_yticks([])\n",
    "dfr.plot(ax=ax1, color=\"k\", legend=False, lw=2)\n",
    "\n",
    "ax1.fill_between([pd.to_datetime(\"2017-02-15\"), pd.to_datetime(\"2017-02-28\")], [0, 200], step=\"pre\", alpha=0.2, color='k', linewidth=0)\n",
    "ax1.set_yticks([0,50, 100, 150])\n",
    "#ax1.set_xlim(0,100)\n",
    "ax1.set_ylim(0,150)\n",
    "ax1.set_ylabel(r'$|V_c(t)|$')\n",
    "ax1.spines['top'].set_visible(False)\n",
    "ax1.spines['right'].set_visible(False)\n",
    "ax1.spines['left'].set_visible(True)\n",
    "ax1.spines['bottom'].set_visible(True)\n",
    "# format the coords message box\n",
    "months_fmt = mdates.DateFormatter('%d/%m')\n",
    "monday = mdates.WeekdayLocator(interval=2)  # every monday\n",
    "ax1.xaxis.set_major_locator(monday)\n",
    "ax1.xaxis.set_major_formatter(months_fmt)\n",
    "ax1.set_xlabel(\"2017\")\n",
    "\n",
    "ax2.plot(x_grid, pdf, 'r')\n",
    "ax2.set_xlim(0, 150)\n",
    "ax2.set_xticks([0, 75, 150])\n",
    "ax2.fill(x_grid, pdf, fc='#AAAAFF' ,alpha=0.2)\n",
    "sns.despine(trim=True, left=False, bottom=True, ax=ax2)\n",
    "ax2.set_xlabel(r'$|V_c|$')\n",
    "\n",
    "plt.savefig(path+filename)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
